﻿//day20-01 牛客：经此⼀役⼩红所向⽆敌，题号：1907586
//解法：模拟  O(1)
//typedef long long LL;
//LL a, h, b, k;
//int main()
//{
//    cin >> a >> h >> b >> k;
//    LL ret = 0;
//    LL cnt = min(h / b + (h % b == 0 ? 0 : 1), k / a + (k % a == 0 ? 0 : 1));
//    ret += cnt * (a + b);
//    if (h - cnt * b <= 0 && k - cnt * a <= 0) cout << ret << endl;
//    else
//    {
//        if (h - cnt * b <= 0) cout << ret + 10 * b << endl;
//        else cout << ret + 10 * a << endl;
//    }
//    return 0;
//}


//day20-02 牛客：连续⼦数组最⼤和，题号：225856
//解法：动态规划 - 线性dp
//const int n = 2e5 + 10;
//typedef long long ll;
//ll arr[n], dp[n];
//int n;
//int main()
//{
//    //dp[i]表示：以i位置为结尾的所有子数组中最大和
//    cin >> n;
//    for (int i = 1; i <= n; i++) cin >> arr[i];
//    ll ret = -0x3f3f3f3f;
//    for (int i = 1; i <= n; i++)
//    {
//        dp[i] = max(dp[i - 1] + arr[i], arr[i]);
//        ret = max(ret, dp[i]);
//    }
//    cout << ret << endl;
//    return 0;
//}


//day20-03 牛客：非对称之美，题号：1218323
//解法：找规律+贪心
//string s;
//bool judge()
//{
//    int left = 0, right = s.size() - 1;
//    while (left < right)
//    {
//        if (s[left] != s[right]) return false;
//        left++;
//        right--;
//    }
//    return true;
//}
//int main()
//{
//    cin >> s;
//    int n = s.size();
//    int flag = 0;
//    for (int i = 1; i < n; i++)
//    {
//        if (s[i] != s[0])
//        {
//            flag = 1;
//            break;
//        }
//    }
//    if (flag == 0) cout << 0 << endl;
//    else cout << (judge() ? n - 1 : n) << endl;
//    return 0;
//}